The Impact of Laziness on Parallelism and the Limits of Strictness Analysis
نویسندگان
چکیده
The major question examined by this paper is whether suucient ne-grain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations, viz., pure lazy and lenient. Although the optimized lazy implementation improves signiicantly the eeciency of the resulting programs over the pure lazy approach, it was found that little parallelism can eeectively be identiied. This remains true even when a new notion of laziness | speculative laziness | is introduced, notion well suited to parallel machines as it based on a parallel notion of head-strictness instead of the traditional sequential one. Our experiments also showed that when a program's result is known to be nite, then strictness analysis can generate almost as much parallelism as can be obtained from a lenient (i.e., non-strict but non-lazy) implementation. Thus, this means strictness analysis per se is not suucient and should be combined with some form of termination analysis and that there is little hope to extract much parallelism for programs that really require laziness.
منابع مشابه
The Impact of Laziness on Parallelism and the Limits of StrictnessAnalysisG
The major question examined by this paper is whether suucient ne-grain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations...
متن کاملCompiling Laziness Using Projection Types
Strictness analysis is accepted as an important tool for the eecient implementation of lazy functional languages. However, the analyses are usually rst-order and the optimisations that follow may be ad hoc. Using projections to represent static properties of programs is appealing because they naturally describe component-wise demand on data structures and can handle latent demands such as head-...
متن کاملLenient evaluation is neither strict nor lazy
What is a non-strict functional language? Is a non-strict language necessarily lazy? What additional expressiveness brings non-strictness, with or without laziness? This paper tries to shed some light on these questions. First, in order to characterize non-strictness, di1erent evaluation strategies are introduced: strict, lazy, and lenient. Then, using program examples, how these evaluation str...
متن کاملThe mediating role of organizational culture in the effect of organizational laziness on the inertia and organizational performance of the Ministry of Sports and Youth
Abstract Introduction: The main purpose of this study was to investigate the mediating role of organizational culture in the effect of laziness on organizational performance and inertia. Methods: This study was one of the series of correlational descriptive research that was conducted in the field. The statistical population consisted of all the employees of the country's Ministry of Sports an...
متن کاملThe Role of Corporate Governance Mechanisms and the Auditor's Specialty in Debt Contract Strictness
Objective: Violation of contractual conditions leads to the transmission of bad news due to poor performance and the expertise of auditors and regulatory mechanisms can be a factor in adjusting it. In this article, the purpose is to examine the role of strictness in the debt contract and the auditor's expertise. Research Method: In order to study the subject based on the logistic regression mo...
متن کامل